// packageOnlineStore/pages/confirmOrder/confirmOrder.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseUrl: '', //全局连接地址
    productNumber: '',
    productId: '',
    typeId: '',
    addressId: '',
    userId: '',
    productData: '',
    typeData: '',
    addressData: '',
    couponData: '',
    Order: '',
    totalPrice: 0,
    isSelectProductShow1: false,
    couponId: '',
    couponId1: '',
    amountTo: 0,
    couponData1: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const app = getApp();
    this.setData({
      userId:app.globalData.userInfo.userId,
      baseUrl: app.globalConfig.baseUrl,
    })
    this.setData({
      productNumber: options.productNumber,
      productId: options.productId,
      typeId: options.typeId,
      addressId: options.addressId,
    });
    const currentDate = new Date(); // 获取当前时间
    const currentDay = currentDate.getDate(); // 获取当前日期
    const currentMonth = currentDate.getMonth(); // 获取当前月份（注意，这里月份是从0开始计数，0表示1月，11表示12月）
    const newDay = currentDay + 2; // 计算两天后的日期数字
    const newDate = new Date(currentDate.getFullYear(), currentMonth, newDay); // 创建新的Date对象表示两天后的日期
    const displayMonth = newDate.getMonth() + 1; // 获取调整后的月份（转换为日常使用的1 - 12的计数方式）
    const displayDay = newDate.getDate(); // 获取调整后的日期
    const formattedDate = `${displayMonth.toString().padStart(2, '0')}-${displayDay.toString().padStart(2, '0')}`; // 格式化日期为"MM-dd"的形式
    this.setData({
      twoDaysLaterDate: formattedDate // 将格式化后的日期存入页面数据中
    });
    Promise.all([
      this.productChange(),
      this.typeChange(),
      this.addressChange(),
    ]).then(() => {
      // 所有请求都成功返回后，可以在这里执行依赖这些数据的后续逻辑，比如更新页面显示等
      console.log('所有请求都已完成，可进行后续操作');
    }).catch(err => {
      // 捕获请求过程中出现的错误
      console.error('请求出现错误：', err);
    });
  },
  //   “productId”：商品的唯一标识 ID，来自上一个页面传递的 “options.productId”。
  // “typeId”：可能是商品的规格 ID，由上一个页面传递的 “options.typeId” 确定。
  // “addressId”：地址的唯一标识 ID，是上一个页面传递过来的 “options.addressId”。
  // “userId”：用户的唯一标识 ID，来源于上一个页面传递的 “options.userId”。
  //根据商品id获取商品信息
  productChange() {
    const token = wx.getStorageSync('token');//获取令牌
    const baseUrl = this.data.baseUrl //获取本地连接地址
    const productId = this.data.productId;
    wx.request({
      url: baseUrl + '/product/productDetail/' + productId,
      method: 'GET',
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        this.setData({
          productData: res.data.data
        })
        const numProductNumber = parseFloat(this.data.productNumber);
        if (!isNaN(numProductNumber)) {
          const price = this.data.productData.productPrice;
          const total = price * numProductNumber;
          this.setData({
            totalPrice: total
          });
        }
      },
    })
  },
  //根据商品规格id获取商品规格信息
  typeChange() {
    const token = wx.getStorageSync('token');//获取令牌
    const baseUrl = this.data.baseUrl //获取本地连接地址
    const typeId = this.data.typeId;
    wx.request({
      url: baseUrl + '/product/productType/' + typeId,
      method: 'GET',
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        this.setData({
          typeData: res.data.data
        })
      },
    })
  },
  //根据地址id获取地址信息
  addressChange() {
    const token = wx.getStorageSync('token');//获取令牌
    const baseUrl = this.data.baseUrl //获取本地连接地址
    const addressId = this.data.addressId;
    wx.request({
      url: baseUrl + '/product/deliveryAddress/' + addressId,
      method: 'GET',
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        this.setData({
          addressData: res.data.data
        })
      },
    })
  },
  radioChange(e) {
    this.setData({
      couponId1: e.detail.value //所选地址id
    });
  },
  // 优惠卷显现的函数
  showSelectProduct1(e) {
    const token = wx.getStorageSync('token');//获取令牌
    const baseUrl = this.data.baseUrl //获取本地连接地址
    const userId = this.data.userId;
    // url: baseUrl+'/product/couponHave/list?pageNum=1&pageSize=10&',
    wx.request({
      url:baseUrl+'/product/couponHave/list?pageNum=1&pageSize=10&'+userId,
      method: 'GET',
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        const couponData = res.data.rows
        this.setData({
          couponData: couponData
        })
      },
    })
    this.setData({
      isSelectProductShow1: true // 新增一个变量来控制显示隐藏，初始设为false，点击后设为true显示
    });
  },
  close(e) {
    this.setData({
      isSelectProductShow1: false,
    })
  },
  //选择地址之后点击确定触发的函数
  choiceOk() {
    const token = wx.getStorageSync('token');//获取令牌
    const couponId = this.data.couponId1;
    this.setData({
      couponId: couponId,
      isSelectProductShow1: false
    })
    const baseUrl = this.data.baseUrl //获取本地连接地址
    wx.request({
      // url: baseUrl+'/product/productCoupon/'+couponId,
      url: `http://localhost/dev-api/product/productCoupon/${couponId}`,
      method: 'GET',
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        this.setData({
          couponData1: res.data.data
        });
        let couponAmountStr = res.data.data.couponAmount
        let couponAmountNum = parseFloat(couponAmountStr.slice(0, -1)) / 100;
        const amountTo = this.data.totalPrice - this.data.totalPrice * couponAmountNum;
        this.setData({
          amountTo: amountTo
        });
      },
    })
  },
  //去付款页面
  payOrder() {
    const token = wx.getStorageSync('token');//获取令牌
    const currentDate = new Date(); // 获取当前时间
    const year = currentDate.getFullYear(); // 获取年份
    const month = currentDate.getMonth() + 1; // 获取月份（注意月份是从0开始计数，所以要加1）
    const day = currentDate.getDate(); // 获取日
    const hours = currentDate.getHours(); // 获取小时
    const minutes = currentDate.getMinutes(); // 获取分钟
    const seconds = currentDate.getSeconds(); // 获取秒
    const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    this.setData({
      twoDaysLaterDate1: formattedDate // 将格式化后的日期存入页面数据中
    });
    const freightPrice = this.data.amountTo; //运费价格
    const productNumber = this.data.productNumber; //商品数量
    const orderTime = this.data.twoDaysLaterDate1; //订单时间
    const stateId = 1; //订单状态
    const productId = this.data.productId; //商品名称
    const typeId = this.data.typeId; //商品规格
    const couponhaveId = this.data.couponId; //优惠卷名
    const addressId = this.data.addressId; //收货地址
    const userId = this.data.userId;
    const baseUrl = this.data.baseUrl
    wx.request({
      url: baseUrl + '/product/productOrder',
      method: "POST",
      data: {
        freightPrice: freightPrice,
        productNumber: productNumber,
        orderTime: orderTime,
        stateId: stateId,
        productId: productId,
        typeId: typeId,
        couponhaveId: couponhaveId,
        addressId: addressId,
        userId: userId
      },
      header: {
          'authorization': 'Bearer\u0020' + token
      },
      success: (resp) => {
        console.log(resp);
         let OrderId = resp.data.data;
          wx.navigateTo({
            url: `/packageOnlineStore/pages/payOrder/payOrder?OrderId=${OrderId}`,
          })
        }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})